Eecient Java Rmi for Parallel Programming
نویسندگان
چکیده
Java offers interesting opportunities for parallel computing. In particular, Java Remote Method Invocation (RMI) provides a flexible kind of Remote Procedure Call (RPC). Unlike RPC, RMI supports polymorphism, which requires the system to be able to download remote classes into a running application. Sun’s RMI implementation achieves this kind of flexibility at the cost of a major runtime overhead. Using Sun’s JDK 1.2 on a Pentium Pro/Myrinet cluster, for example, the latency for a null RMI (without parameters or a return value) is 1316 μs, 42 times that of a user-level RPC. In this paper, we study a new approach for implementing RMI, based on native compilation. This approach allows for better optimization, reduces the need for processing of type information at runtime, and uses a lightweight communication protocol. We implemented such an RMI protocol in a compiler-based Java system, called Manta. To support polymorphic RMIs and to allow interoperability with other Java Virtual Machines, Manta also implements the Sun protocol and is capable of dynamically compiling and linking bytecode into a running application. The null-latency of our Manta protocol over Myrinet is 37 μs, 35 times faster than the Sun JDK, and only 6 μs slower than a C-based RPC protocol. The cause for this high performance is that almost all of the runtime overhead of RMI has been pushed to compile time. We study the performance differences between the Manta and the Sun RMI protocols in detail. The poor performance of the Sun RMI protocol is in part due to an inefficient implementation of the protocol. We therefore built a more efficient implementation of the Sun protocol by compiling it with the Manta native compiler and reducing various overheads of the protocol. The null-latency for this compiled Sun RMI system is 301 μs, still 8 times slower than Manta. We study various latency and throughput benchmarks and breakdowns for Manta and for the compiled Sun RMI protocol. Finally, we describe the impact of the RMI protocols on application performance. Performance measurements using up to 32 CPUs show that five out of six parallel programs obtain high efficiencies (at least 75%) with Manta. Only two coarse-grained applications perform well with the compiled Sun RMI protocol; on the other four applications, Manta obtains 1.9 to 3.4 times higher speedups.
منابع مشابه
A More Eecient Rmi for Java
In current Java implementations, Remote Method Invoca-tion (RMI) is too slow, especially for high performance computing. RMI is designed for wide-area and high-latency networks , it is based on a slow object serialization, and it does not support high-performance communication networks. The paper demonstrates that a much faster drop-in RMI and an eecient serialization can be designed and implem...
متن کاملJava Communications for Large - Scale
Java has many features of interest to developers of large-scale parallel applications. At the same time, there are currently several barriers to the eeective use of Java in this area. In this article we present part of the results and proposed solutions to these problems. In particular, we report about the current status of the organized collaborations within the Java Grande Forum in the area o...
متن کاملMore Eecient Object Serialization Ternational Workshop on Java for Parallel and Distributed Com- Puting
In current Java implementations, Remote Method Invoca-tion is too slow for high performance computing. Since Java's object serialization often takes 25%{50% of the time needed for a remote in-vocation, an essential step towards a fast RMI is to reduce the cost of serialization. The paper presents a more eecient object serialization in detail and discusses several show-stoppers we have identiied...
متن کاملUsing Workstations as Building Blocks for Parallel Computing
The key to eecient parallel computing on workstations clusters is a communication subsystem that removes the operating system from the communication path and eliminates all unnecessary protocol overhead. At the same time, protection and a stable multiuser , multiprogrammed environment cannot be sacriiced. We have developed a communication subsystem, called ParaStation2, which fulllls these requ...
متن کاملJob Size for Internet Parallel Computing
In this paper, we present a performance model and the experimental results of parallel execution of Java Remote Method Invocation (RMI). The Java RMI is used for remote execution of parallel jobs on the Internet. The main use of the model is to determine the job size of the distributed objects that are suitable for the meta-computing on the Internet.
متن کامل